package pincipal.pack;


import java.io.InputStream;


import database.Consulta;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;

import android.widget.Toast;


public class CargarPartidasExcel extends Activity {
	
	InputStream archivoExcel;
	private ProgressDialog pd = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		requestWindowFeature( Window.FEATURE_NO_TITLE );
		setContentView(R.layout.cargar_base_de_datos);		
		archivoExcel = getResources().openRawResource(R.raw.database);		
		this.pd = ProgressDialog.show(this, "Cargando Partidas", "Por favor espere...", true, false);
		new DownloadTask().execute("Parametros que necesite el DownloadTask");

	}
	
	private void cargarPartidasObraGruesa()
	{
		try
		{
			Workbook workbook = Workbook.getWorkbook(archivoExcel);
			Sheet sheet = workbook.getSheet(1);
			int fila = 4;
			for (int i = 0; i < 98; i++)
			{
				Cell bandera = sheet.getCell(0, fila);
				Cell nombrePartida = sheet.getCell(1, fila);
				Cell observacion = sheet.getCell(6, fila);
				Consulta.insertPartida(this, this.generarCodigo(), nombrePartida.getContents(), observacion.getContents());
				fila++;
				Cell cmp = sheet.getCell(0, fila);
				do
				{
					Cell materialPartida = sheet.getCell(1, fila);
					Cell rendimiento = sheet.getCell(3, fila);
					Consulta.insertMaterialPartida(this, nombrePartida.getContents(), materialPartida.getContents(), rendimiento.getContents());
					fila++;
					cmp = sheet.getCell(0, fila);
				} while (cmp.getContents().equals(""));
				
				
			}
			archivoExcel.close();
		}
		catch (Exception ex)
		{
			Log.e("Ficheros", "Error al leer fichero desde recurso raw");
		}
	}
	
	private int generarCodigo()
	{
		int codigo = 0;
		String tipo = "partida";
		Cursor consultId = Consulta.consultIdentificador(CargarPartidasExcel.this, "'"+tipo+"'");
		if (consultId.moveToFirst())
        {
        	do {
    			codigo = consultId.getInt(1);		        		
           } while(consultId.moveToNext());    	
        } 
		Consulta.editIdentificador(CargarPartidasExcel.this, codigo+1, "partida");
		return codigo;
	}
	
	private class DownloadTask extends AsyncTask<String, Void, Object> {
        protected String doInBackground(String... args)
        {
            CargarPartidasExcel.this.cargarPartidasObraGruesa();
            return "Datos ya procesados (resultado)";
        }

        protected void onPostExecute(Object result) 
        {
            Intent intent = new Intent(CargarPartidasExcel.this, Configuraciones.class);
			startActivity(intent);
            if (CargarPartidasExcel.this.pd != null) 
            {
            	CargarPartidasExcel.this.pd.dismiss();
            }
        }
   }
}
